/**
 * <b>项目名称：</b>网络应用框架<br/>
 * <b>包    名：</b>com.hhwy.framework.utils<br/>
 * <b>文 件 名：</b>BeanTools.java<br/>
 * <b>版本信息：</b><br/>
 * <b>日    期：</b>2014年10月29日-上午11:06:24<br/>
 * <b>Copyright (c)</b> 2014恒华伟业科技股份有限公司-版权所有<br/>
 * 
 */
package com.hhwy.framework.util;

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.beanutils.BeanUtils;

import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * <b>类 名 称：</b>BeanTools<br/>
 * <b>类 描 述：</b><br/>
 * <b>创 建 人：</b>lihuiming<br/>
 * <b>修 改 人：</b>lhm<br/>
 * <b>修改时间：</b>2014年10月29日 上午11:06:24<br/>
 * <b>修改备注：</b><br/>
 * 
 * @version 1.0.0<br/>
 */
public class BeanTools {
	

	/**
	 * convert(转换list类型)<br/>
	 * 
	 * @param sourceList
	 * @param targetClass
	 * @return List<Object>
	 * @exception
	 * @since 1.0.0
	 */
	public static <T> T convert(List<?> sourceList, Class<?> destClass) {
		List<Object> destList = new ArrayList<Object>();
		for (Object obj : sourceList) {
			Object dest = copyBean(obj, destClass);
			destList.add(dest);
		}

		return (T) destList;
	}

	/**
	 * copyProperty(拷贝对象属性)<br/>
	 * 
	 * @param source
	 * @param target
	 *            void
	 * @exception
	 * @since 1.0.0
	 */
	public static <T>T copyBean( Object sourceObj,Class<?> destClass){
		T t =  null;
		try {
			Object dest = destClass.newInstance();
			BeanUtils.copyProperties(dest, sourceObj);
			
			t = (T)dest;
		} catch (IllegalAccessException | InvocationTargetException |InstantiationException e) {
			e.printStackTrace();
		}
		return t;
	}
}
